package com.gcxy.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.gcxy.core.PageVO;
import com.gcxy.core.R;
import com.gcxy.dto.export.DownloadFileDTO;
import com.gcxy.dto.guidance.GuidancePageDTO;
import com.gcxy.dto.guidance.UpdateGuidanceDTO;
import com.gcxy.entity.Guidance;
import com.gcxy.vo.guidance.GuidanceVO;

import java.util.List;

/**
 * <p>
 * 服务类
 * </p>
 *
 * @author Huang先森
 * @since 2024-07-22
 */
public interface GuidanceService extends IService<Guidance> {

    /**
     * 新增周指导记录
     *
     * @param agencyId
     * @return
     */
    void addGuidance(Integer agencyId);

    /**
     * 修改周指导记录
     *
     * @param updateGuidanceDTO
     * @return
     */
    R<?> updateGuidance(UpdateGuidanceDTO updateGuidanceDTO);

    /**
     * 根据id获取周指导记录详情
     *
     * @param guidanceId
     * @return
     */
    R<GuidanceVO> getGuidanceById(Integer guidanceId);

    /**
     * 分页查询周指导记录
     *
     * @param guidancePageDTO
     * @return
     */
    R<PageVO<GuidanceVO>> getGuidanceByPage(GuidancePageDTO guidancePageDTO);

    /**
     * 生成周指导记录word文件
     *
     * @param dto
     * @return
     */
    R<?> createGuidanceFile(DownloadFileDTO dto);

    /**
     * 获取周指导记录
     *
     * @param honoraryTeacherId
     * @param weekNum
     * @param semesterId
     * @return
     */
    Guidance getGuidanceInfo(Integer honoraryTeacherId, Integer weekNum, Integer semesterId);
}
